1. Field of the Invention
This invention pertains generally to communication data processing, and more particularly to optimizing wireless communication data processing.
2. Description of Related Art
The Open System Interconnection (OSI) standard provides a seven layered hierarchy between an end user and a physical device through which various network systems can communicate. Each layer is responsible for different tasks and the OSI specifies the interaction between layers while ensuring that the communication devices comply with the standard.
FIG. 1 shows the hierarchy 100 of the seven-layered OSI standard. As shown in the figure, the OSI standard includes a physical layer 105, a data link layer 110, a network layer 115, a transport layer 120, a session layer 125, a presentation layer 130 and an application layer 135.
The physical layer 105 conveys the bit stream through the network at the electrical, mechanical and functional level. It provides a hardware means of sending and receiving data on a carrier. The data link layer 110 provides the representation of bits on the physical medium and the format of messages on the physical medium, sending blocks of data, such as frames, with proper synchronization. The networking layer 115 handles the routing and forwarding of the data to proper destinations, while maintaining and terminating connections. The transport layer 120 manages the end-to-end control and error checking to ensure complete data transfer. The session layer 125 sets up coordinates, and terminates communications between applications. The presentation layer 130 converts incoming and outgoing data from one presentation format to another. The applications layer 135 is where communications, quality of service, user authentication, and so forth, are considered.
FIG. 2 illustrates a hierarchy 160 of the IEEE 802.11 wireless standard. Similar to the OSI standard, the IEEE 802.11 committee has developed a three layer architecture for wireless networks that roughly corresponds to the physical layer, the data link layer of the OSI standard. The IEEE 802.11 standard is typically implemented within network interface devices that communication with other network interfaces that are wireless or more preferably wired networks. As shown in the figure, the IEEE 802.11 standard includes a physical layer 165, a media access control (MAC) layer 170, and a logical link control layer 175. The physical layer 165 operates in a similar capacity as the physical layer in the OSI standard. The MAC layer and the logical link control layers share the functions of the data link layer in OSI standard 100. The logical link control layer 175 places data into frames that can communicate at physical layer 165, while MAC layer 170 manages communications over the data link sending data frames and receiving acknowledgment (ACK) frames. Together MAC layer 170 and link control layer 175 are responsible for error checking as well as retransmission of frames that are not received and acknowledged.
Wireless technologies have been integrated into our daily lives and are being required to provide not only connectivity, but also high performance, reliability and stable communications. The most dominant of the 802 wireless communication standard is IEEE 802.11 and its variants such as 802.11a, 802.11b, 802.11g which are being increasingly incorporated in various wireless products, such as personal computer interconnection.
FIG. 3 depicts an example in which an IEEE 802.11 network 200 in the home is utilized as the link between a personal computer 210 (i.e. remote PC, laptop PC, PDA, etc.) of a user and router 220 connected to the Internet 230. In this scenario, the IEEE 802.11 network becomes the first or last hop in the communication path. Furthermore, TCP/IP (Transmission Control Protocol/Internet Protocol) is used as the communication protocol for the entire communication path. However, using TCP/IP over IEEE 802.11 networks present some problems.
One of these problems involves the high overhead incurred with regard to frame retransmissions. It should be recognized that 802.11 networks have a high bit error rate (BER) on the order of 10−5, while a wired network like Ethernet has a very low bit error rate, on the order of 10−12. In order to provide reliable communications over lossy networks, IEEE 802.11 networks use automatic repeat requests (ARQ) to retransmit lost frames. Bit errors can be generated by resource contention of other nodes in the same IEEE 802.11 network or from other types of interference, such as multi-path radio effect. To avoid contention, a sender uses a back-off scheme that increases the wait time for retransmission exponentially. Thus, as more retransmissions occur, frame transmission time is delayed. Consequently, the communication performance of the IEEE 802.11 network is severely degraded when there is an increase in BER.
Another problem with the IEEE 802.11 network is that of self contention. A transport protocol such as the transmission control protocol (TCP) which provides high reliability communication uses acknowledgment (ACK) packets to confirm that the retransmitted packets have been received successfully. For TCP, one ACK packet is usually transmitted for every two data packets that arrive. This means that the number of transmitted ACK packets depends on the data transfer rate. These ACK packets contend with the data packets due to the half-duplex nature of 802.11 networks. This performance degradation is called self-contention and it typically reduces TCP performance by over 20% compared to communication in full duplex networks.
FIG. 4 illustrates a frame for a data packet according to the IEEE 802.11 wireless architecture. One of the problem with IEEE 802.11 wireless networks regards the frame size limits, wherein the specification allows for a frame size having a length of 2312 bytes, with a variable length frame body 240 of from 0 to 2312 bytes and a 4 byte FCS 260. Since IEEE 802.11 requires waiting a certain amount of time before and after frame transmission, the use of a larger frame size could perhaps improve performance. However, when TCP/IP is used on IEEE 802.11 networks, the maximum transmission unit (MTU) which indicates maximum number of bytes that can be transmitted in a single frame is set to 1500 bytes in most cases.
FIG. 5 is an illustration of frame transmission within a conventional IEEE 802.11 frame transmission scheme. According to the IEEE 802.11 standard, the sender waits for an ACK from the receiver to confirm that a frame was received successfully. If an ACK is not received within a certain period of time, the sender presumes the packet was lost in the network and tries to retransmit it. As shown in the figure, the number of frame retransmits (num_f_retransmit) indicates the maximum retransmission times for frames. This value is typically set to a value between six to eight in a normal configuration. The transmission scheme is executed starting at block 305, wherein a frame packet is then transmitted as per block 310. The sender then awaits 315 an acknowledgment, and determines whether an acknowledgment has been received as per block 320. If an acknowledgment of frame receipt arrives from the receiver confirming that a frame has been received, the sender completes the frame transmission as represented by block 340, completing the transmission operations in block 345.
If, on the other hand, the sender does not receive confirmation of a successful transmission of a frame, the sender determines whether the frame transmission has timed as shown in block 325. In response to a transmission time out, the sender determines whether the time out exceeds the number of frame retransmissions in block 330. If the sender determines that a particular frame transmission has exceeded the number of frame retransmissions, the sender completes the frame transmission as represented by block 340. Alternatively, if a frame retransmission does not exceed the number of retransmissions, as detected by block 330, the sender attempts to retransmit the frame as per block 335 while waiting for an acknowledgment from the receiver of a successful transmission.
FIG. 6 illustrates a comparison of overhead for a 10 Mbps Ethernet, 10Base-T, associated with transmission of data 410, with the overhead for IEEE 802.11b, associated with transmission of data 420. The difference in overhead is requirements is readily apparent.
As mentioned above, a IEEE 802.11 network is typically utilized for a single section, or “hop”, within a communication path wherein the remainder of the path generally includes Ethernet having a 1500 byte MTU. To facilitate adjusting to other networks, the MTU of IEEE 802.11 is also set to 1500 bytes. It is possible for an IEEE 802.11 network to choose a large value for MTU, but it raises some issues. These issues may include in IP version 4 (IPv4), an IP packet being fragmented as it travels from a network with a large MTU to a network with a smaller MTU. Since packet fragmentation requires creating new IP and MAC headers for each fragment of the fragmented packet, this overhead may impact performance.
While IP packets are fragmented in IPv4, in IP version 6 (IPv6), IP packets are never fragmented. Packets are required to use the minimum MTU in the path determined by the path MTU discovery or the default MTU value: 1280 bytes. Thus, if the path contains a network with a smaller MTU, which is very common, a 2312 byte MTU will not be used.
Simply increasing the MTU size will not necessarily improve communication performance. Using a large MTU can reduce the effect of the overhead for frame transmission and it can lead to performance improvement under non-lossy environments. However, performance is drastically degraded under lossy environments, since a large MTU is more sensitive to bit error than a smaller one.
Therefore, it is desirable to provide a method by which wireless networks can communicate with other networks, specifically TCP/IP based networks, without the inherent problems of the conventional art. The present invention fulfills that need and optimizes network data processing between two network with different data transport protocols.